package com.example.restful.controller;

import com.example.restful.model.User;
import com.example.restful.service.UserService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController

public class UserController {
    @Autowired
    UserService userService;
    /**
     * 查询所有用户
     * @return
     */

    @GetMapping("/users")
    @ApiOperation("查询所有用户")
    public List<User> getAllUsers(){
        return userService.list();
    }
    /**
     在 UserController 中一共定义了五个接口：
     1. Get 请求：/users，查询所有用户；
     2. Get 请求：/user/{id}，根据 id 查询指定用户；
     3. Post 请求：/user，添加用户；
     * 根据 id 查询指定用户
     * @param id
     * @return
     */
    @GetMapping("/user/{id}")
    public User getUserById(@PathVariable("id") Integer id){
        User user = userService.getById(id);
        return user;
    }
    /**
     * 插入用户
     * @param user
     * @return
     */
    @PostMapping("/user")
    public String addUser(@RequestBody User user){
        if (userService.save(user)){
            return "插入用户成功！";
        }
        else return "插入用户失败";
    }
    /**
     * 修改用户信息
     * @param user
     * @return
     */
    @PutMapping("/user")
    public String updateUser(@RequestBody User user){
        if (userService.updateById(user)){
            return "更新用户成功！";
        }
        else return "更新用户失败";
    }
    /**
     * 删除用户
     * @param id
     * @return
     */
    @DeleteMapping("/user")
    public String deleteUserById(Integer id) {
        if (userService.removeById(id)) {
            return "删除用户成功！";
        } else return "删除用户失败！";
    }
    }
